package com.rui.classTable.controller;

import com.rui.classTable.entity.ClassTable;
import com.rui.classTable.service.ClassTableService;
import com.rui.classTable.vo.classTableQuery;
import com.rui.common.vo.Result;
import com.rui.emp.entity.Emp;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@Controller  //表明此方法为控制器
@RequestMapping("/class") //注明方法地址
public class ClassTableController {
    @Autowired   //让spring完成bean的自动装配,自动装配对象
    private ClassTableService classTableService ;
    @GetMapping("")
    public String toClassTableUI(){
        return "class/classTableList";
    }
    @GetMapping("/list") //请求获取特定数据时，用get请求
    @ResponseBody
    public Result<Object> getclassTableList(classTableQuery param){
        List<ClassTable> list = classTableService.getClassTableList(param);
        Long count =classTableService.countClassTableList(param);
        return Result.success(list, count);
    }

    @PostMapping("")//新增数据时，用post请求
    @ResponseBody //将方法返回为json数据
    public Result<Object> addClassTable(ClassTable classTable ){
        classTableService.addClassTable(classTable);
        return Result.success("添加课程成功！");
    }
    @GetMapping("/add/ui")
    public String toAddUI(){
        return "class/addClass";
    }
    @DeleteMapping("/{cls}") //用于处理http中的delete请求，并将请求映射到删除方法中
    @ResponseBody               //将方法中的参数绑定到请求URI中的模板变量上
    public Result<Object> deleteClassBycls(@PathVariable("cls") String cls){
        classTableService.deleteClassBycls(cls);
        return Result.success("删除课程成功！");
    }
    @GetMapping("/{id}")
    public  String getClassById(@PathVariable("id") Integer id ,Model model ){
      ClassTable classTable =  classTableService.getClassById(id);
        model.addAttribute("classTable",classTable);
        return "class/classEdit";
    }
    @PutMapping("")     //更新数据时，用put请求
    @ResponseBody
    public Result<Object> updateClass(ClassTable classTable ){
        classTableService.updateClass(classTable);
        return  Result.success("课程修改成功");
    }
}
